home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 April / CHIP 1996 aprilis (CD06).zip / CHIP_CD06.ISO / hypertxt.arj / 9512 / VACPP.CD < prev    next >
Text File  |  1996-03-07  |  14KB  |  228 lines

  1.           @VIBM VisualAge C++@N
  2.  
  3.           @VOS/2 += C++;@N
  4.  
  5.               Elsô  pillantásra  is  komoly  vállalkozásnak  tûnik C++
  6.           alapú vizuális fejlesztôrendszert  írni: valóban, a  feladat
  7.           igen nehéz, hiszen  a C++ nem  kifejezetten támogatja azt  a
  8.           dinamikus  megközelítést, amit  a legtöbb  objektumorientált
  9.           kezelôfelület API esetében megszokhattunk.
  10.               Sokan nem szeretik a C++-t. ïk kifejezetten  kételkednek
  11.           abban,   hogy   ez  a   nyelv   alkalmas  komoly   feladatok
  12.           megoldására.  Az  errôl  szóló  vitában  (aminek  színvonala
  13.           egyébként  alig éri  el a  Commodore 64--ZX  Spectrum  hívôk
  14.           között valaha dúlt csatározásokét) komoly érv a C++  mellett
  15.           egy olyan jól megtervezett  rendszer, mint az IBM  VisualAge
  16.           C++-a.
  17.  
  18.  
  19.           @VErôforrás-igény@N
  20.  
  21.               Az elsô, ami a kérdéses termékkel kapcsolatban feltûnik,
  22.           hatalmas merevlemez- és memóriaigénye.
  23.               Nos,  igen. A  program majdnem  200 Mbyte-ot  foglal  el
  24.           telepítés  után. Használatához  pedig 12,  illetve 16  Mbyte
  25.           memória szükséges attól függôen, hogy a vizuális  eszközöket
  26.           használjuk-e (16,  illetve 24  Mbyte ajánlott).  És még  sok
  27.           memóriával  is  elég  lassú. Ez  egyfelôl  a  C++ jellegébôl
  28.           adódik,  másfelôl  a   fordítóprogram  sajátossága.  Ezt   a
  29.           problémát  sajnos   nem  lehet   megkerülni,  a   vele  járó
  30.           kellemetlenségekért azonban kárpótol  bennünket az IBM  Open
  31.           Class Library, a kellemesen megtervezett osztálykönyvtár. Az
  32.           absztrakt  adatszerkezetektôl kezdve  az operációs  rendszer
  33.           szolgáltatásainak  elérésére   szolgáló  osztályokon   át  a
  34.           kezelôfelület-elemekig mindent megtalálunk benne.
  35.               A VisualAge smalltalkos verziójára is jellemzô egyébként
  36.           a  rendkívüli erôforrásigény,  mégis az  a véleményem,  hogy
  37.           ezeknél a programoknál ebben a kategóriában szebb és  jobban
  38.           megtervezett fejlesztôi környezet nem nagyon van. Az  IBM-re
  39.           jellemzôen kevés a díszítôelem, a lényeges eszközök  azonban
  40.           mind jól  használhatók (néha  persze csak  a szintén  az IBM
  41.           termékeire jellemzô körülményességgel).
  42.               A   VisualAge   C++-os   változata   alig   hasonlít   a
  43.           smalltalkosra.   (A    VisualAge   Smalltalk    környezetrôl
  44.           szeptemberi,  az   IBM  Smalltalkról   novemberi  számunkban
  45.           írtunk.) Egyedül a vizuális alrendszer ismerhetô fel, de  az
  46.           abban  használt  osztálykönyvtárak  már  más  jellegûek.  Ez
  47.           persze    nyilvánvaló,    hiszen    az     osztálykönyvtárak
  48.           felépítésénél tekintetbe kell venni  a nyelv jellegét is,  a
  49.           Smalltalk és a C++ között pedig elég nagy a távolság.
  50.  
  51.  
  52.           @VA rendszer alapja: a WorkFrame@N
  53.  
  54.               A két  rendszer közti  különbséget elôször  is az eltérô
  55.           fordítási modell határozza meg. A VisualAge C++  rendszerben
  56.           jóval lazább az eszközök közötti kapcsolat, mint a Smalltalk
  57.           változatban,   ahol  tulajdonképpen   egyetlen  egy   valódi
  58.           programba vonták  össze az  összes fejlesztôi  eszközt. (Más
  59.           kérdés,   hogy   a   programot   több   logikai   folyamatra
  60.           bonthattuk.) Itt az integráció  fô eszköze a WorkFrame,  egy
  61.           olyan program, amelybôl a rendszer összes elemét elérhetjük.
  62.               Egy  WorkFrame  project  tulajdonképpen  egy   speciális
  63.           mappa,  amelyben  a  megvalósítandó  rendszer   komponenseit
  64.           elhelyezhetjük, rajtuk bizonyos mûveleteket végrehajthatunk,
  65.           illetve  ezeknek  a mûveleteknek  az  eredményét figyelemmel
  66.           kísérhetjük.  Ez   gyakorlatilag  azt   jelenti,  hogy   egy
  67.           WorkFrame project megnyitásakor  egy ablakot látunk,  amiben
  68.           menü, két eszközsor (egy az ablak tetején, egy az alján)  és
  69.           egy szöveges mezô van. A menüvel és az eszközsorokkal  lehet
  70.           a  kiválasztott   file-okon  a   rendszer  többi   programja
  71.           segítségével   mûveleteket   vérehajtani:    forrásfile-okat
  72.           szerkeszteni,     a      programot     újrafordítani,      a
  73.           böngészôprogramokat  elindítani.  Az  igen  csúnya,   sárga,
  74.           szöveges mezôben  pedig mindenféle  információkat kapunk  az
  75.           éppen  végrehajtott mûveletrôl.  (Ez programok  fordításakor
  76.           több   oldalnyi,   igen   tanulságos   szöveg:   az  IBM-nél
  77.           elképzelhetetlen,  hogy   megússzuk  olyanok   nélkül,  mint
  78.           például ""Initializing actions hierarchy", esetleg ""Writing
  79.           601 bytes  of module  format directive"  -- igazság  szerint
  80.           nekem ez nagyon tetszik, bár elég hatásvadász.)
  81.               Egy  érdekes,  a WorkFrame-bôl  elérhetô  opció a  Build
  82.           Smarts. Ennek  segítségével az  egyébként kézzel,  egyenként
  83.           megadható  fordítási  opciókat  állíthatjuk  át  egyszerûen,
  84.           néhány  kattintással,  hogy  tartalmazzanak  más   speciális
  85.           opciócsoportokat, például  a kód  optimalizálására vonatkozó
  86.           vagy a böngészô program mûködéséhez szükséges beállításokat.
  87.               Ehhez  kapcsolódóan  említésre méltó  program  a Project
  88.           Smarts,  amivel  néhány  alapvetô alkalmazásosztály-mintából
  89.           választhatunk, és amely -- a Borland C++-os Expertjeihez  és
  90.           a  Microsoft   Wizardjaihoz  hasonlóan   --  létrehozza   az
  91.           alkalmazás  keretét.  Ez  a  munkaasztalunkon  jelenik   meg
  92.           ikonként, amit  megnyitva egy  WorkFrame projectet  érhetünk
  93.           el.
  94.               A  WorkFrame-bôl   elérhetô  legfontosabb   programok  a
  95.           programozható  szövegszerkesztô,  a  vizuális  eszközök   (a
  96.           Visual Builder), a nyomkövetô program, a  teljesítményelemzô
  97.           program, a böngészô és a C++ fordító.
  98.  
  99.  
  100.           @VA vizuális programozói környezet@N
  101.  
  102.               A VisualAge  C++ legérdekesebb  része a  Visual Builder.
  103.           Ezzel  a  programmal tudunk  kattintgatással  új programokat
  104.           létrehozni:  nincs más  dolgunk, mint  a megfelelô  részeket
  105.           (kezelôfelület-elemeket, adatszerkezeteket stb.)  elhelyezni
  106.           a megfelelô helyeken,  majd mindenféle nyilakkal  összekötni
  107.           ôket.
  108.               Egy kicsit részletesebben: a VisualAge környezeten belül
  109.           a vizuális módszerekkel (egérrel) manipulálható objektumokat
  110.           @Krész@Neknek  nevezzük.  Ezek  lehetnek  látható,  illetve  nem
  111.           látható   részek   --   leggyakrabban  kezelôfelület-elemek,
  112.           illetve adatszerkezetek. Egy @Krész@Nen végezhetünk mûveleteket,
  113.           vannak   bizonyos   tulajdonságaik,   illetve  értesíthetnek
  114.           bennünket  valamilyen eseményrôl.  Ennek megfelelôen  @Krész@Nek
  115.           között a következô kapcsolattípusokat hozhatjuk létre:
  116.               @V*@N  Tulajdonság--tulajdonság közti  kapcsolat: két  érték
  117.           közötti  kapcsolat.  Ha  az  egyik  érték  megváltozik, vele
  118.           változik a másik is.
  119.               @V*@N    Esemény--tulajdonság    kapcsolat:    az    esemény
  120.           bekövetkezte a tulajdonság megváltoztatását vonja maga után.
  121.               @V*@N  Esemény--mûvelet  kapcsolat:  esemény bekövetkeztekor
  122.           végrehajtódik a mûvelet.
  123.               @V*@N   Tulajdonság--mûvelet:   az   attribútum    értékének
  124.           megváltozásakor végrehajtódik a mûvelet.
  125.               @V*@N  Esemény--tagfüggvény:   az  esemény   bekövetkeztekor
  126.           meghívódik egy C++ osztály tagfüggvénye.
  127.               @V*@N      Tulajdonság--tagfüggvény:      az      attribútum
  128.           megváltozásakor meghívódik a tagfüggvény.
  129.               Kapcsolatoknak   lehetnek   még   paraméterei   (szintén
  130.           kapcsolat   formában   egyébként),   illetve   használhatunk
  131.           speciális mechanizmusokat is a megfelelô hatások elérésére.
  132.               A  kapcsolatoknak  különbözô  színû  nyilacskák felelnek
  133.           meg, a kapcsolatok irányát pedig az jelzi, hogy be  vannak-e
  134.           színezve  a  nyílhegyek.   Egy  egyszerû  példa:   egy  gomb
  135.           @KbuttonClickEvent@N eseményét  összeköthetjük az  ôt tartalmazó
  136.           ablak   @Kclose@N   akciójával.   Ennek   nyilván   az   lesz  a
  137.           következménye,  hogy a  gomb megnyomása  után becsukódik  az
  138.           ablak (példa az esemény--mûvelet kapcsolatra). Ennél  sokkal
  139.           bonyolultabb   mechanizmusok  is   létrehozhatók,  a   többi
  140.           kapcsolattípussal, illetve saját C++ kóddal.
  141.               A  vizuális  programozás  másik  fele  --  nevezetesen a
  142.           @Krész@Nek elhelyezése a munkaterületen -- nagyjából megfelel  a
  143.           többi  ilyen  programozói eszköz  tudásának.  Több csoportba
  144.           osztott   palettáról   választhatjuk   ki   az  elhelyezendô
  145.           elemeket, az elemek egymáshoz képesti elhelyezkedését  pedig
  146.           a felsô  eszközsorbeli gombokkal  szabályozhatjuk: egymáshoz
  147.           illeszthetjük  a  kiválasztott  elemek  szélét, egyenletesen
  148.           szétteríthetjük  ôket   egy  területen,   illetve  egymáshoz
  149.           igazíthatjuk   méretüket.   A   Smalltalk   alapú  VisualAge
  150.           Motif-szerû   osztálykönyvtárából   megszokott    futásidejû
  151.           elhelyezkedés-kiszámítást sajnos nélkülöznünk kell. Ez nekem
  152.           elég  nagy  kellemetlenségnek   tûnt  --  cserébe   a  többi
  153.           beállítható  opcióból  sokkal több  van,  jóval kézenfekvôbb
  154.           lett néhány attribútum elhelyezése.
  155.               Összességében  a   vizuális  programozói   felületnek  a
  156.           lassúságán kívül nincs sok hibája, jól használható, a  többi
  157.           C++ alapú ilyen eszköznél sokkal jobb (bár  használhatóságát
  158.           erôsen csökkenti, hogy csak OS/2-es változata létezik.)
  159.  
  160.  
  161.           @VA ""hagyományos" környezet@N
  162.  
  163.               Az élet persze nem csak kattintgatásból áll --  mondanák
  164.           néhányan --, nem hozhatók létre komoly programok csak ikonok
  165.           ide-oda húzogatásával. Bár  az utóbbi állítás  elfogadásával
  166.           mintegy  elzárkózunk   a  probléma   mélyebb  megismerésétôl
  167.           (jogosan, hiszen  ennek a  cikknek más  a célja), idôlegesen
  168.           tekinthetjük majdnem igaznak. Ez az elv is, meg a  VisualAge
  169.           valósága is -- jelesen, VisualAge alatt valóban nem  hozható
  170.           létre  nagyobb  alkalmazás  csupán  kattintgatással  -- arra
  171.           ösztönöz minket, hogy megismerjük, milyen más  lehetôségeket
  172.           rejt magában a rendszer.
  173.               Tartalmaz   elôször   is   egy   kitûnô,   programozható
  174.           szövegszerkesztôt, rengeteg  beépített lehetôséggel.  Szinte
  175.           mindent tud, amit egy rendes programozói szövegszerkesztônek
  176.           tudnia kell -- amit pedig nem, arra program írható. A Visual
  177.           Buildertôl és  a C++  fordítótól eltekintve  ez a  program a
  178.           rendszer  egyik   legfontosabb  része,   ezt  használjuk   a
  179.           legtöbbet.
  180.               Az elkészült kód  vizsgálatára is találunk  eszközöket a
  181.           VisualAge  C++-ban:  nyomkövetôt, programstruktúra-böngészôt
  182.           és teljesítményelemzôt.
  183.               A  nyomkövetô program  nagyjából mindent  tud, amit  egy
  184.           ilyen  környezetben  futó 3GL  nyomkövetô  programnak tudnia
  185.           kell. Az alapfunkciókon kívül a tárgykód szintû nyomkövetést
  186.           is  megkönnyíti,  teljes  regiszterlistával  (a lebegôpontos
  187.           koprocesszor  regisztereivel   együtt)  és   a  forráskódhoz
  188.           keverhetô assembly tárgykóddal.
  189.               A böngészô  és a  teljesítményelemzô program  is hasonló
  190.           színvonalú. A  puding próbája  persze az  evés, az  eszközök
  191.           csínját-bínját legjobban használatuk során lehet megismerni.
  192.               Összefoglalásképpen:     a     VisualAge     smalltalkos
  193.           változatának eleganciáját sajnos nem éri utol ez a termék --
  194.           persze  ez  már  a C++  természete  miatt  szinte lehetetlen
  195.           vállalkozás.  Cserébe  kárpótolhat  minket  a  létrejött kód
  196.           hatékonysága -- messze nem igényel annyi erôforrást, mint az
  197.           a  változat.  Jól   sikerült  integrálni  a   sok  különbözô
  198.           fejlesztôi  eszközt   a  WorkFrame   révén.  Nagyon   jók  a
  199.           kiegészítô       programok       (böngészô,      nyomkövetô,
  200.           teljesítményelemzô), amelyekre persze nem volt külön szükség
  201.           a smalltalkos verzióban (új kódot csak böngészôkkel  tudtunk
  202.           a  rendszerhez hozzáadni,  teljesítményelemzésre a  rendszer
  203.           alapvetô erôforráspazarlása miatt szinte alig volt  szükség,
  204.           teljesítménykritikus kódot pedig szinte lehetetlen VisualAge
  205.           Smalltalkban írni).
  206.               Mostanában nagyon divatosak a vizuális  programfejlesztô
  207.           rendszerek.  Még   az  IBM   sincs  könnyû   helyzetben,  ha
  208.           versenyképes  terméket  kíván  létrehozni.  A  VisualAge C++
  209.           kiemelkedik   a    mezônybôl   átgondoltságával,    kellemes
  210.           osztálykönyvtárával, jól használható eszközeivel. Két hibája
  211.           van.  Az  egyik a  lassúsága:  memória- és  processzorigénye
  212.           szinte  kielégíthetetlen.  Ez  az  elkészült  kódon  azonban
  213.           egyáltalán  nem látszik,  a fejlesztôknek  pedig legyen  sok
  214.           pénze  vagy  sok ideje.  A  másik, súlyosabb  hibája  -- ami
  215.           tulajdonképpen két alhibából tevôdik össze: kevés platformot
  216.           támogat  --  csak  OS/2  alatt  mûködik,  és  a  használható
  217.           adatbáziskezelôk köre  is szûk.  Kijavítva ezeket  a hibákat
  218.           (fôleg  az  utóbbiakat)  sokkal  hatékonyabbá  válna  ez  az
  219.           eszköz.
  220.  
  221.           @KÉder Géza@N
  222.  
  223.           @<9512\HAGY.GIF>■■@N  A ""hagyományos" módszer: munka az editorral
  224.  
  225.           @<9512\DEBUG.GIF>■■@N  Munkában a debugger
  226.  
  227.           @<9512\GOMBA.GIF>■■@N  Egy rész a vizuális környezetbôl: a Composition Editor
  228.